package com.gzp.util.pageutil;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;

import java.util.List;

/**
 * @author: guanzepeng
 * @Date: 2021/9/6 14:26 星期一
 * @Description: 处理原始数据的分页
 */
public class PageUtils {

	/**
	 * 开始分页
	 *
	 * @param list
	 * @param pageNum  页码
	 * @param pageSize 每页多少条数据
	 * @return
	 */
	public static <T> List<T> startPage(List<T> list, Integer pageNum, Integer pageSize) {
		//进行非空判定
		if (CollUtil.isEmpty(list)) {
			return null;
		}
		//如果页数为空或者小于0就初始化页数为0
		if (ObjectUtil.isNull(pageNum) || pageNum < 0) {
			pageNum = 0;
		}
		//如果总条数为空或者小于等于0就初始化为20
		if (ObjectUtil.isNull(pageSize) || pageSize <= 0) {
			pageSize = 20;
		}
		//因为分页是从0开始的所以只要不在起始位置就需要 -1
		if (pageNum != 0) {
			pageNum = pageNum - 1;
		}
		//总条数
		int count = CollUtil.size(list);
		//分页原始数据
		List<T> pageList = ListUtil.page(pageNum, pageSize, list);

		return pageList;
	}
}
